The searching of large databases to obtain a target based on an input signal may be inefficient and costly due to the amount of computer resources utilized in the search. It is, thus, desirable to reduce the amount of computer resources used in searching such databases. A known system disclosed in U.S. Pat. No. 5,592,665, issued to Lahaige, utilizes an index stored in the database. The index includes an initial part of a label header, one or more secondary pointers, and an indication of whether all data items having that initial part are contained in only one or in a plurality of blocks of data in the database. First, the index is accessed with the initial part of the label header. If the index item pertaining to the latter initial part is contained in only a single block, the pointer in that index item points to that single block and the block is stored in a foreground memory. If the data items having the initial part are contained in a plurality of data blocks, the pointer of the current index item points to a further index item having the current initial part extended by a next successor label header, whereupon the process repeats for the next extended label header. Thus, the target data is identified first in the index before it is brought to the foreground memory. During the entire process, however, the computer resource is actually accessing the database.
The use of a Dual-Tone Multifrequency (DTMF) keypad to search limited databases, such as an employee telephone number database, is also known. Such applications have relatively low implementation costs and relatively high usage efficiency. The use of a DTMF keypad to search large databases, such as a White Pages directory, is not performed as efficiently and cost effectively. Existing systems proceed in three phases: search string entry, database retrieval, and listing report. After accessing the system, the user or application is prompted to enter a search string that is terminated either explicitly (e.g., by entering a "#") or implicitly (e.g., by reaching a criterion number of digits or by pausing long enough to time out). The search string is then used to query the database for matching entries. If there are no matching entries, the user or application is so informed.
If there are fewer than the system criterion number of matching entries, the user or application is informed and may be given reporting options or just given the matches. If there are more than the system criterion number of matching entries, the user or application is so informed and may be given the option of entering additional information.
In all of the situations described above, the database is queried at least once even though in some cases the user or application does not receive any target information. Thus, the known systems may be inefficient and costly, especially in cases when the user or application possesses too much or too little information to direct the search efficiently. In such cases, either too much search information is entered to locate the target or determine none exists; or too little information is entered and multiple searches are required with no assurance of success.